Sewer Tycoon Jr.
A storm is hitting Glasgow. Twelve hours of rain on a combined sewer: four storage tanks, one treatment works, one river. Set the valves hour by hour and keep the overflow out of the Clyde.
1. Learn the game on one tank. 2. Play the full system. 3. Bring in AI, level by level: basic prompting, agentic tool use, then an automated research loop. 4. Submit your plan.
Learn the game
Rain fills the tank. Its valve sends water to the treatment works, which can treat 20 ML/h (megalitres per hour; 1 ML = 1,000 m³). Water overflows to the river two ways: the tank fills up, or the works gets more than 20 ML/h. Your job: no overflow.
- Close every valve. Where does the water go?
- Open every valve fully. What happens at the works?
- Get the spill to zero.
This is what you'll hand in. In the full game the code has four groups of twelve digits, one group per tank, like 222222222222-222222222222-222222222222-222222222222. Copy it into a chat assistant or the submission form, or paste one back in to load it.
The system
In a combined sewer, rainwater and household sewage share the same pipes, so a big storm can send more than the system can treat. Here, four storage tanks hold the excess and pass it downhill, tank by tank, to a treatment works. The works treats up to 20 ML/h (megalitres per hour) and has no storage, so anything above 20 ML/h at that moment overflows to the river. A full tank overflows too. Goal: as little total overflow as possible. The fine is 100 Scoin per ML.
Full problem description
Real-time control of a combined sewer during a storm
A combined sewer, where rainwater and sewage share the same pipes, serves four neighbourhoods. It drains downhill through four storage tanks in series: tank 1 at the top, tank 4 at the bottom. Each tank releases flow to the next tank through an outlet valve, and tank 4 releases to a wastewater treatment works.
Given
- Storage volumes of tanks 1 to 4: 100, 100, 120 and 150 ML (1 ML = 1,000 m³). When a tank is full, any additional inflow overflows to the river.
- The treatment works can treat at most 20 ML/h and has no storage. Any flow it receives above 20 ML/h overflows to the river.
- Each valve can be set once per hour to closed, 25%, 50%, 75% or fully open. The release depends on both the valve setting and how full the tank is: a fully open valve on a full tank releases about 34 ML/h (tanks 1 to 3) or 38 ML/h (tank 4), and less when the tank is lower.
- A 12-hour storm delivers about 560 ML to the system in total, about 85 ML of which is sewage flow from upstream entering tank 1. Rain runoff peaks at tank 1 around hours 4 to 5 and reaches each tank downhill about an hour later than the one above it.
Find
- (a) A valve schedule for all four tanks over the 12 hours that minimises the total volume overflowed to the river.
- (b) A short explanation of the strategy, including when and why each tank releases.
- (c) Any assumptions made, and how the answer would change if the storm arrived an hour earlier than forecast.
Report the schedule as four groups of twelve digits separated by dashes, tank 1 first, one digit per hour (0 = closed, 1 = 25%, 2 = 50%, 3 = 75%, 4 = open), for example 222222222222-222222222222-222222222222-222222222222.
Levels: by hand, then with AI
There are four ways to play. Start by hand, then bring in AI, each level giving it more to work with: your description of the problem, then real data, then the utility's own model. Whatever you or the AI come up with, load it into the system above and watch it play. Pick the level that matches how you got your plan when you submit.
Manual: explore by hand
No laptop or AI needed; a phone works. Play with the timetable in the system above while the storm runs. Watch the red marks to see which tank overflows in which hour, nudge the valves around them, and keep any change that lowers the plan total. The quick-set buttons (all half open, bottom first and so on) are good starting points.
Things to notice: opening everything overloads the works, holding everything makes the top tank overflow, and the storm reaches the bottom tanks later than the top ones.
Basic prompting: work out a strategy
Use any chat assistant the way a student would on a homework problem. Copy the problem statement into the chat, then work with the assistant on a general strategy first: which tanks should drain early, which should hold, and how to keep the works busy without overloading it. Only then turn the strategy into a plan code.
The statement gives the volumes, the works capacity and the shape of the storm, but not the hour-by-hour data, so the assistant has to reason rather than calculate. Load its plan in the system above, watch where it overflows, describe that back, and refine together.
Agentic tool use: work from the data
The utility logs every hour of the storm: rainfall on each catchment, upstream sewer flow, tank levels, valve settings, flows, and overflows. Copy the sensor log for the plan currently loaded in the system, and give it to an assistant that can run code (or open it in a spreadsheet or notebook).
Ask it to dig in before it solves anything. For example:
Load its suggestion into the system, copy the new sensor log, and go another round.
Automated research loop: let an agent run the model
The utility has shared its fully calibrated hydraulic model of this sewer. Download the model package (a small zip file), unzip it, and open the folder in Claude Code, Codex, or another coding agent. The package includes instructions the agent will read on its own.
Then give it a goal and let it work. For example:
Agents do best when you let them keep going. If it stops early, ask it to look at where the remaining overflow happens and try again.
The inspiration
Sewer Tycoon Jr. is a small cousin of two Digital Water Lab projects: SewerTycoon, a game-like interface to a real sewer model, and pystorms, a sandbox for testing stormwater control algorithms.
- Schmidt, J., Tobias, M., Loos, S., and Kerkez, B. (2025). Democratizing Sewer Data: Customized Interfaces Allow Non-engineers to Take Action Against Urban Flooding. ACM SIGCAS/SIGCHI Conference on Computing and Sustainable Societies (COMPASS '25). The research behind SewerTycoon. doi.org/10.1145/3715335.3735480
- Rimer, S.P., Mullapudi, A., Troutman, S.C., Ewing, G., Bowes, B.D., Akin, A.A., Sadler, J., Kertesz, R., McDonnell, B., Montestruque, L., Hathaway, J., Goodall, J.L., and Kerkez, B. (2023). pystorms: A simulation sandbox for the development and evaluation of stormwater control algorithms. Environmental Modelling & Software, 162, 105635. arXiv:2110.12289 · pystorms.netlify.app
Submit your plan
Your plan code always matches the timetable in the system above: four groups of twelve digits separated by dashes, tank 1 first, one digit per hour (0 = closed, 1 = 25%, 2 = 50%, 3 = 75%, 4 = open), for example 222222222222-222222222222-222222222222-222222222222.
The button copies your plan and opens the workshop form in a new tab. Enter your team name, pick your approach (Manual, Basic prompting, Agentic tool use or Research loop), paste the plan into the solution box, and press Submit. You can submit more than once; your best plan counts.
Every plan is scored with the utility's hydraulic model, and the lowest total overflow wins.